The present invention relates to a technology for changing functions that can be supplied to client programs in a client server system such as, for example, an X window system, without amending an existing server program. While the present invention is discussed in the client server system environment, it should be understood that this invention can be applied to any address-type interface between any two programs.
A conventional system is known for realizing desired functions by linking a server program with client programs. In such a system, the server program notifies each client program of usable functions. A client program requests a specific function selected from among the functions notified from the server program. Upon receiving the request, the server program supplies the function to the client program.
The system described above is generally referred to as a client server system (CSS). From here on, such a client server system will be explained by way of an X window system, which is a client server type window system.
In an X window system, the server program (X server) displays a window and draws patterns in the window displayed on a display screen of a computer that is executing the server program in response to a request from a client program (application program). In addition, the server program, when receiving a user instruction entered by an input device, notifies the client program of the received instruction.
On the other hand, the client program asks the server program to supply various functions for displaying a window, drawing patterns in the window, etc. on the display screen. In addition, the client program executes desired processings according to the contents of a user instruction, etc. notified from the server program. As such, the X window system allows the server program to be linked with client programs to realize a graphical user interface (GUI) which is used by users to communicate with the computer.
In a conventional client server system, the functions supplied by the server program are usually fixed. In addition, each client program is created on the premise that the client program will use such fixed functions of the server program. Consequently, in a client server system in which the server program notifies each client program of usable functions and each client program requests its desired functions selected from among the functions notified from the server program, it is impossible for the client program to increase and reduce usable functions without amending the server program. Thus, the system has a problem that it is not flexible for such operations.
For example, when a new hardware appears, a client program will want to increase existing usable functions to make maximum use of the hardware ability. In such a case, in the case of the conventional client server system, functions that are not supplied originally by the server program must be added to the server program and accordingly the server program must be amended.
Furthermore, for some functions supplied by the server program to client programs, client programs can execute those functions faster than the server program executes them. In some cases, a user may thus want to suppress supply of those functions from the server program. In such a case, the conventional client server system must delete the functions from the server program and accordingly amend the server program.
For the X window system explained above, there is proposed a technology of using a server program, which is a pseudo X server, between each client program (application program) and the server program (real X server) to which client programs are to be connected to ease the restriction that allows the server program to be connected to each client program at 1:1. (The technology is discussed in Carsten Bormann and Gero Hoffmann's article entitled "Xmc and Xy-Scalable Window Sharing and Mobility or From X Protocol Multiplexing to X Protocol Multicasting", pp. 205-210, Issue 9, The X Resource.)
This technology demands that each client program should be connected to the pseudo X server instead of the real X server by changing the address given to the client program. In addition, the pseudo X server is connected to the real X server, so that the client program can access the real X server via the pseudo X server. Consequently, this technology changes over the real X server to which the pseudo X server is to be connected so that the client program can request a plurality of real X servers for supply of desired functions. More concretely, the client program can display a window on the display screen of each of the plurality of computers in which a server program (real X server) is executed and display patterns, etc. in the window respectively. This technology, however, is not used to change the protocol (X protocol) for defining data exchanges between each client program and the server program.
In other words, this technology changes over the connection between the pseudo X server and the real X server so that each client program can access a plurality of real X servers and accordingly the restriction for connecting the server program to each client program at 1:1 is eased. The functions supplied to each client program via the pseudo X server are thus completely the same as those supplied by the real X server. Such technology that uses the above pseudo X servers does not take into consideration increasing and reducing functions that can be used by client programs.